<?php

namespace App\Controllers;

use App\Core\View;
use App\Services\ThemeManager;
use App\Core\Flash;

class ThemeController
{
    /**
     * 切换主题
     */
    public function switch()
    {
        $theme = $_GET['theme'] ?? 'default';

        try {
            $themeManager = ThemeManager::getInstance();
            $themeManager->setCurrentTheme($theme);

            Flash::success("主题已切换为 " . ucfirst($theme));
        } catch (\Exception $e) {
            Flash::error("切换主题失败: " . $e->getMessage());
        }

        // 重定向回之前的页面或首页
        $referer = $_SERVER['HTTP_REFERER'] ?? '/';
        header("Location: $referer");
        exit;
    }

    /**
     * 预览主题
     */
    public function preview()
    {
        $theme = $_GET['theme'] ?? null;
        // 获取重定向URL，默认为首页
        $redirect = $_GET['redirect'] ?? '/';

        if ($theme) {
            // 设置会话中的预览主题
            $_SESSION['preview_theme'] = $theme;
            Flash::info("正在预览 " . ucfirst($theme) . " 主题。这只对您可见，不会影响其他用户。");
        } else {
            // 清除预览主题
            unset($_SESSION['preview_theme']);
            Flash::info("已退出主题预览模式。");
        }

        // 重定向到指定页面
        header("Location: $redirect");
        exit;
    }
}
